package com.hsu.hsurpc.registry;

import com.hsu.hsurpc.model.ServiceMetaInfo;

import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * 注册中心服务本地缓存（支持多个服务）
 * @Author Hsu琛君珩
 * @Date 2024-09-21 14:13
 * @Description
 * @Version: v1.0.0
 */
public class RegistryServiceMultiCache {

    /**
     * 服务缓存
     */
    private Map<String, List<ServiceMetaInfo>> serviceCache = new ConcurrentHashMap<>();

    /**
     * 写入缓存
     *
     * @param serviceKey 服务键名
     * @param newServiceCache 新的服务节点信息列表
     */
    public void writeCache(String serviceKey, List<ServiceMetaInfo> newServiceCache) {
        this.serviceCache.put(serviceKey, newServiceCache);
    }

    /**
     * 读取缓存
     *
     * @param serviceKey 服务键名
     * @return 缓存中的服务节点信息列表
     */
    public List<ServiceMetaInfo> readCache(String serviceKey) {
        return this.serviceCache.get(serviceKey);
    }

    /**
     * 清空缓存
     *
     * @param serviceKey 服务键名
     */
    public void clearCache(String serviceKey) {
        this.serviceCache.remove(serviceKey);
    }
}
